package com.fzkj.algorithm;

public class mi1 {

    /**
     * 注册网站时，需要使用包含不同类型（数字、符号、大写字母、小写字母）的字符，和特定长度。
     * 检查一个密码内容同时包含以上 4 种类型的字符，并且长度在8-120 个字符之间。符合要求，返回 0；长度不符合返回 1；类型不符合要求返还 2。
     *
     * 可以一次输入多组密码，以空格符间隔，空格符不作为密码。
     */


    public static void main(String[] args) {
        String result = check("123 12345678 123abcABC!!!");
        System.out.println(result);
    }

    public static String check(String pass){
        StringBuffer result = new StringBuffer();
        String reg = "(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{8,120}";

        String[] strs = pass.split(" ");
        for (String str: strs) {
            // 判断长度
            if (str.length() > 120 || str.length() < 8){
                result.append("1 \n");
                continue;
            }
            // 判断类型
            boolean matches = str.matches(reg);
            if(!matches){ // 不满足
                result.append("2 \n");
                continue;
            }
            result.append("0 \n");
        }
        return result.toString();
    }

}
